package com.config.http;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration // 标记为配置类，Spring Boot 启动时自动加载
public class CorsConfig implements WebMvcConfigurer {


    @Value("${allowedOrigins}")
    private String [] allowedOrigins;

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 允许跨域的接口路径：/** 表示所有接口
                .allowedOrigins(allowedOrigins) // 允许的前端域名（多个用逗号分隔，* 表示允许所有，但不支持Credentials）
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许的请求方法（OPTIONS 是预检请求，必须包含）
                .allowedHeaders("*") // 允许的请求头（* 表示所有，也可指定具体头如 "Authorization"）
                .allowCredentials(true) // 是否允许携带 Cookie（true 时，allowedOrigins 不能用 *，必须指定具体域名）
                .maxAge(3600); // 预检请求的有效期（秒）：3600 表示1小时内无需重复发送预检请求
    }
}